#pragma once
#include <string>
#include <iostream>

namespace ability_core
{
/** 
Class:		IAbility
Purpose:	Allows access to global ability specifics - "Recipe of the ability"
Usage:		Extends default ability templates - Client shouldn't use
**/

//Hide//
class IAbility
{
public:
	virtual bool	condition() = 0;
	virtual void	action() = 0;
	virtual int		getMpCost() = 0;
	virtual int		getCooldownTime() = 0;
	virtual void	setName(std::string) = 0;
	virtual			std::string getName() = 0;
	virtual ~IAbility(void){}
};
}